package vue;

import javax.swing.*;

import model.Case;

import controller.Controleur;
import java.awt.*;
import java.awt.event.*;
import java.util.List;

/**
 * Class FenetrePrincipale
 */
public class FenetrePrincipale extends JFrame implements ActionListener,ObserveurPlateau {
	
	
	private static final long serialVersionUID = 1L;
	
	private West west;
	private Grille grille;
	
	//private final JPanel damier;
	//private final JLabel etiquette;
	
	public FenetrePrincipale () {

		setPreferredSize(new Dimension(1000,830)); 
		setBackground(Color.darkGray);
		setSize(getPreferredSize());
		setLayout(new BorderLayout());



		// setLayout permet de choisir la politique de placement
		// des objets graphiques dans un conteneur
		// ici la fenêtre
		// on choisit un FlowLayout : les éléments sont disposés 
		// les uns à la suite des autres
		//setLayout(new FlowLayout());

		// on choisit de tuer l'application
		// lorsque l'on clique sur la croix
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		// création d'une barre de menu
		// avec un menu appelé "menu"
		// dans ce menu, on a deux choix
		// "Start" pour commencer une partie
		// "Quitter" pour quitter l'application
		JMenuBar menubar=new JMenuBar();
		JMenu menu=new JMenu("Menu");	
		JMenuItem it1=new JMenuItem("Nouvelle partie");

		// Lorsque l'on clique sur l'item Start, 
		// on déclenche une action appelée "Start"
		it1.setActionCommand("Nouvelle partie");

		JMenuItem it2=new JMenuItem("Quitter");
		it2.setActionCommand("Quitter");

		// ajout des items au menu
		menu.add(it1);
		menu.add(it2);	    	
		// ajout du menu à la barre de menu
		menubar.add(menu);	
		// Les évènements sur les items seront écoutés par l'échiquier
		it1.addActionListener(this);	
		it2.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				System.exit(0);

				
			}
		});
		// on affecte la barre de menu à la fenêtre Echiquier
		setJMenuBar(menubar);

		// on crée une zone de dessin "damier" 
		// avec une politique de placement 
		// en grille 8X8
		// cette zone contiendra les 8X8 cases 

		west = new West();
		JPanel center = new JPanel();
		grille = new Grille();
		center.add(grille);
		add(center, BorderLayout.CENTER);
		add(west, BorderLayout.WEST);
		//grille.setScore1(6);
		//add(west, BorderLayout.WEST);
		//damier=new JPanel(new GridLayout(8,8,0,0));
		//damier.setSize(400,400);
		//etiquette=new JLabel("Aucune partie en cours");
	}


	private void setScore1(int vi) {
		// TODO Auto-generated method stub

	}
	// fonction qui récupère les actions
	// ici les actions correspondent aux évènements
	// sur les items du menu
	public void actionPerformed(ActionEvent e){	
		// Si on clique sur Quitter alors on tue l'application
		Controleur.getControleur().nouvellePartie(grille.getDamier(), west,this);
	    repaint();

		
	}

	/*public boolean getTour(){
		return tour;
	}
	public void changeTour(){ 
		// change le booléen tour et met à jour l'étiquette
		tour=!tour;
		if(tour){
			grille.getEtiquette().setText("Au tour des bleus");
		}
		else{
			grille.getEtiquette().setText("Au tour des rouges");    
		}

	}
	*/


	public Grille getGrille() {
		return grille;
	}
	
	
	public void modifierText(String message){
		
		grille.getEtiquette().setText(message); 
	}


	@Override
	public void Modification(List<Case> Modif) {
		getGrille().getEtiquette().setText("tour numéro "+Controleur.getControleur().getNbTour()); 
		
	}

}





